package model;
import utilities.IllegalProcedureException;
public interface BankProc {
/**
* @pre person != null
* @post size() == size()@pre + 1
* @post get(person) != null
*
*/
public void addPerson(Person person) throws IllegalProcedureException;
/**
* @pre person != null
* @pre containsKey(person)
* @post size() == size()@pre -1
* @post !containsKey(person)
*
*/
public void removePerson(Person person) throws IllegalProcedureException;
/**
* @pre person != null
* @pre account != null
* @pre get(person) != null
* @post get(person).size() == get(person).size()@pre + 1;
* @post !get(person).isEmpty()
*
*/
public void addAccount(Person person, Account account) throws IllegalProcedureException;
/**
* @pre person != null
* @pre aaccount != null
* @pre get(person) != null
* @post get(person).size() == get(person).size()@pre - 1;
*
*/
public void removeAccount(Person person, Account account) throws IllegalProcedureException;
public void readAccountsData();
public Bank writeAccountsData();
public void generateStatement();
}